/**
 * This is a generated class and is not intended for modification.  To customize behavior
 * of this value object you may modify the generated sub-class of this class - PropostaIncompanyVO.as.
 */

package valueObjects
{
import com.adobe.fiber.services.IFiberManagingService;
import com.adobe.fiber.valueobjects.IValueObject;
import flash.events.EventDispatcher;
import mx.collections.ArrayCollection;
import mx.events.PropertyChangeEvent;
import valueObjects.AreaAtuacaoVO;
import valueObjects.AreaTemaVO;
import valueObjects.CargoVO;
import valueObjects.CidadeVO;
import valueObjects.ClienteVO;
import valueObjects.DepartamentoVO;
import valueObjects.EmpresaVO;
import valueObjects.EstadoVO;
import valueObjects.EventoVO;
import valueObjects.FonteSolicitacaoVO;
import valueObjects.PalestranteVO;
import valueObjects.PublicacaoVO;
import valueObjects.RamoAtividadeVO;
import valueObjects.RotuloVO;
import valueObjects.StatusVO;
import valueObjects.UsuarioVO;

import flash.net.registerClassAlias;
import flash.net.getClassByAlias;
import com.adobe.fiber.core.model_internal;
import com.adobe.fiber.valueobjects.IPropertyIterator;
import com.adobe.fiber.valueobjects.AvailablePropertyIterator;

use namespace model_internal;

[ExcludeClass]
public class _Super_PropostaIncompanyVO extends flash.events.EventDispatcher implements com.adobe.fiber.valueobjects.IValueObject
{
    model_internal static function initRemoteClassAliasSingle(cz:Class) : void
    {
        try
        {
            if (flash.net.getClassByAlias("com.event.management.vo.PropostaIncompanyVO") == null)
            {
                flash.net.registerClassAlias("com.event.management.vo.PropostaIncompanyVO", cz);
            }
        }
        catch (e:Error)
        {
            flash.net.registerClassAlias("com.event.management.vo.PropostaIncompanyVO", cz);
        }
    }

    model_internal static function initRemoteClassAliasAllRelated() : void
    {
        valueObjects.EventoVO.initRemoteClassAliasSingleChild();
        valueObjects.AreaAtuacaoVO.initRemoteClassAliasSingleChild();
        valueObjects.RamoAtividadeVO.initRemoteClassAliasSingleChild();
        valueObjects.StatusVO.initRemoteClassAliasSingleChild();
        valueObjects.DepartamentoVO.initRemoteClassAliasSingleChild();
        valueObjects.UsuarioVO.initRemoteClassAliasSingleChild();
        valueObjects.PerfilUsuarioVO.initRemoteClassAliasSingleChild();
        valueObjects.MenuSistemaVO.initRemoteClassAliasSingleChild();
        valueObjects.ItemMenuSistemaVO.initRemoteClassAliasSingleChild();
        valueObjects.PermissaoUsuarioVO.initRemoteClassAliasSingleChild();
        valueObjects.OperacaoVO.initRemoteClassAliasSingleChild();
        valueObjects.AreaUsuarioVO.initRemoteClassAliasSingleChild();
        valueObjects.PublicacaoVO.initRemoteClassAliasSingleChild();
        valueObjects.CargoVO.initRemoteClassAliasSingleChild();
        valueObjects.RotuloVO.initRemoteClassAliasSingleChild();
        valueObjects.ClienteVO.initRemoteClassAliasSingleChild();
        valueObjects.FonteSolicitacaoVO.initRemoteClassAliasSingleChild();
        valueObjects.CidadeVO.initRemoteClassAliasSingleChild();
        valueObjects.EmpresaVO.initRemoteClassAliasSingleChild();
        valueObjects.EstadoVO.initRemoteClassAliasSingleChild();
        valueObjects.PalestranteVO.initRemoteClassAliasSingleChild();
        valueObjects.AreaTemaVO.initRemoteClassAliasSingleChild();
    }

    model_internal var _dminternal_model : _PropostaIncompanyVOEntityMetadata;
    model_internal var _changedObjects:mx.collections.ArrayCollection = new ArrayCollection();

    public function getChangedObjects() : Array
    {
        _changedObjects.addItemAt(this,0);
        return _changedObjects.source;
    }

    public function clearChangedObjects() : void
    {
        _changedObjects.removeAll();
    }

    /**
     * properties
     */
    private var _internal_total : Number;
    private var _internal_dataEnvioProposta : Date;
    private var _internal_cor : String;
    private var _internal_dataSolicitacao : Date;
    private var _internal_descricao : String;
    private var _internal_codigo : Number;
    private var _internal_quantidade : Number;
    private var _internal_periodoFinal : Date;
    private var _internal_ano : Number;
    private var _internal_eventosPublicacao : ArrayCollection;
    model_internal var _internal_eventosPublicacao_leaf:valueObjects.EventoVO;
    private var _internal_prazoFimRetorno : Date;
    private var _internal_areasAtuacaoPublicacao : ArrayCollection;
    model_internal var _internal_areasAtuacaoPublicacao_leaf:valueObjects.AreaAtuacaoVO;
    private var _internal_ramosAtividadePublicacao : ArrayCollection;
    model_internal var _internal_ramosAtividadePublicacao_leaf:valueObjects.RamoAtividadeVO;
    private var _internal_valorParcial : Number;
    private var _internal_status : valueObjects.StatusVO;
    private var _internal_departamentosPublicacao : ArrayCollection;
    model_internal var _internal_departamentosPublicacao_leaf:valueObjects.DepartamentoVO;
    private var _internal_cargosPublicacao : ArrayCollection;
    model_internal var _internal_cargosPublicacao_leaf:valueObjects.CargoVO;
    private var _internal_dia : Number;
    private var _internal_dataInicioSolicitacao : Date;
    private var _internal_telefoneContato : String;
    private var _internal_rotulosClientePublicacao : ArrayCollection;
    model_internal var _internal_rotulosClientePublicacao_leaf:valueObjects.RotuloVO;
    private var _internal_minimo : Number;
    private var _internal_responsaveis : ArrayCollection;
    model_internal var _internal_responsaveis_leaf:valueObjects.ClienteVO;
    private var _internal_publicacoes : ArrayCollection;
    model_internal var _internal_publicacoes_leaf:valueObjects.PublicacaoVO;
    private var _internal_usuarioUltimaAlteracao : valueObjects.UsuarioVO;
    private var _internal_fonteSolicitacaoVO : valueObjects.FonteSolicitacaoVO;
    private var _internal_valorTotal : Number;
    private var _internal_numRegPaginas : int;
    private var _internal_historico : String;
    private var _internal_usuarioCadastro : valueObjects.UsuarioVO;
    private var _internal_dataFimEnvioProposta : Date;
    private var _internal_prazoRetorno : Date;
    private var _internal_cidadesPublicacao : ArrayCollection;
    model_internal var _internal_cidadesPublicacao_leaf:valueObjects.CidadeVO;
    private var _internal_emailContato : String;
    private var _internal_percentual : Number;
    private var _internal_valorProposta : Number;
    private var _internal_responsavelContato : String;
    private var _internal_empresasPublicacao : ArrayCollection;
    model_internal var _internal_empresasPublicacao_leaf:valueObjects.EmpresaVO;
    private var _internal_prazoInicioRetorno : Date;
    private var _internal_fonteSolicitacao : String;
    private var _internal_totalRegistros : int;
    private var _internal_estadosPublicacao : ArrayCollection;
    model_internal var _internal_estadosPublicacao_leaf:valueObjects.EstadoVO;
    private var _internal_dataInicioEnvioProposta : Date;
    private var _internal_maximo : Number;
    private var _internal_mes : Number;
    private var _internal_dataCadastro : Date;
    private var _internal_dataFimSolicitacao : Date;
    private var _internal_dataUltimaAlteracao : Date;
    private var _internal_tipoEntidade : String;
    private var _internal_palestrante : valueObjects.PalestranteVO;
    private var _internal_parcial : Number;
    private var _internal_acao : String;
    private var _internal_empresa : valueObjects.EmpresaVO;
    private var _internal_periodoInicial : Date;
    private var _internal_responsavel : valueObjects.ClienteVO;
    private var _internal_indicePagina : int;
    private var _internal_areaTema : valueObjects.AreaTemaVO;
    private var _internal_rotulosPublicacao : ArrayCollection;
    model_internal var _internal_rotulosPublicacao_leaf:valueObjects.RotuloVO;
    private var _internal_selecionado : Boolean;

    private static var emptyArray:Array = new Array();

    // Change this value according to your application's floating-point precision
    private static var epsilon:Number = 0.0001;

    /**
     * derived property cache initialization
     */
    model_internal var _cacheInitialized_isValid:Boolean = false;

    model_internal var _changeWatcherArray:Array = new Array();

    public function _Super_PropostaIncompanyVO()
    {
        _model = new _PropostaIncompanyVOEntityMetadata(this);

        // Bind to own data or source properties for cache invalidation triggering

    }

    /**
     * data/source property getters
     */

    [Bindable(event="propertyChange")]
    public function get total() : Number
    {
        return _internal_total;
    }

    [Bindable(event="propertyChange")]
    public function get dataEnvioProposta() : Date
    {
        return _internal_dataEnvioProposta;
    }

    [Bindable(event="propertyChange")]
    public function get cor() : String
    {
        return _internal_cor;
    }

    [Bindable(event="propertyChange")]
    public function get dataSolicitacao() : Date
    {
        return _internal_dataSolicitacao;
    }

    [Bindable(event="propertyChange")]
    public function get descricao() : String
    {
        return _internal_descricao;
    }

    [Bindable(event="propertyChange")]
    public function get codigo() : Number
    {
        return _internal_codigo;
    }

    [Bindable(event="propertyChange")]
    public function get quantidade() : Number
    {
        return _internal_quantidade;
    }

    [Bindable(event="propertyChange")]
    public function get periodoFinal() : Date
    {
        return _internal_periodoFinal;
    }

    [Bindable(event="propertyChange")]
    public function get ano() : Number
    {
        return _internal_ano;
    }

    [Bindable(event="propertyChange")]
    public function get eventosPublicacao() : ArrayCollection
    {
        return _internal_eventosPublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get prazoFimRetorno() : Date
    {
        return _internal_prazoFimRetorno;
    }

    [Bindable(event="propertyChange")]
    public function get areasAtuacaoPublicacao() : ArrayCollection
    {
        return _internal_areasAtuacaoPublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get ramosAtividadePublicacao() : ArrayCollection
    {
        return _internal_ramosAtividadePublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get valorParcial() : Number
    {
        return _internal_valorParcial;
    }

    [Bindable(event="propertyChange")]
    public function get status() : valueObjects.StatusVO
    {
        return _internal_status;
    }

    [Bindable(event="propertyChange")]
    public function get departamentosPublicacao() : ArrayCollection
    {
        return _internal_departamentosPublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get cargosPublicacao() : ArrayCollection
    {
        return _internal_cargosPublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get dia() : Number
    {
        return _internal_dia;
    }

    [Bindable(event="propertyChange")]
    public function get dataInicioSolicitacao() : Date
    {
        return _internal_dataInicioSolicitacao;
    }

    [Bindable(event="propertyChange")]
    public function get telefoneContato() : String
    {
        return _internal_telefoneContato;
    }

    [Bindable(event="propertyChange")]
    public function get rotulosClientePublicacao() : ArrayCollection
    {
        return _internal_rotulosClientePublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get minimo() : Number
    {
        return _internal_minimo;
    }

    [Bindable(event="propertyChange")]
    public function get responsaveis() : ArrayCollection
    {
        return _internal_responsaveis;
    }

    [Bindable(event="propertyChange")]
    public function get publicacoes() : ArrayCollection
    {
        return _internal_publicacoes;
    }

    [Bindable(event="propertyChange")]
    public function get usuarioUltimaAlteracao() : valueObjects.UsuarioVO
    {
        return _internal_usuarioUltimaAlteracao;
    }

    [Bindable(event="propertyChange")]
    public function get fonteSolicitacaoVO() : valueObjects.FonteSolicitacaoVO
    {
        return _internal_fonteSolicitacaoVO;
    }

    [Bindable(event="propertyChange")]
    public function get valorTotal() : Number
    {
        return _internal_valorTotal;
    }

    [Bindable(event="propertyChange")]
    public function get numRegPaginas() : int
    {
        return _internal_numRegPaginas;
    }

    [Bindable(event="propertyChange")]
    public function get historico() : String
    {
        return _internal_historico;
    }

    [Bindable(event="propertyChange")]
    public function get usuarioCadastro() : valueObjects.UsuarioVO
    {
        return _internal_usuarioCadastro;
    }

    [Bindable(event="propertyChange")]
    public function get dataFimEnvioProposta() : Date
    {
        return _internal_dataFimEnvioProposta;
    }

    [Bindable(event="propertyChange")]
    public function get prazoRetorno() : Date
    {
        return _internal_prazoRetorno;
    }

    [Bindable(event="propertyChange")]
    public function get cidadesPublicacao() : ArrayCollection
    {
        return _internal_cidadesPublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get emailContato() : String
    {
        return _internal_emailContato;
    }

    [Bindable(event="propertyChange")]
    public function get percentual() : Number
    {
        return _internal_percentual;
    }

    [Bindable(event="propertyChange")]
    public function get valorProposta() : Number
    {
        return _internal_valorProposta;
    }

    [Bindable(event="propertyChange")]
    public function get responsavelContato() : String
    {
        return _internal_responsavelContato;
    }

    [Bindable(event="propertyChange")]
    public function get empresasPublicacao() : ArrayCollection
    {
        return _internal_empresasPublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get prazoInicioRetorno() : Date
    {
        return _internal_prazoInicioRetorno;
    }

    [Bindable(event="propertyChange")]
    public function get fonteSolicitacao() : String
    {
        return _internal_fonteSolicitacao;
    }

    [Bindable(event="propertyChange")]
    public function get totalRegistros() : int
    {
        return _internal_totalRegistros;
    }

    [Bindable(event="propertyChange")]
    public function get estadosPublicacao() : ArrayCollection
    {
        return _internal_estadosPublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get dataInicioEnvioProposta() : Date
    {
        return _internal_dataInicioEnvioProposta;
    }

    [Bindable(event="propertyChange")]
    public function get maximo() : Number
    {
        return _internal_maximo;
    }

    [Bindable(event="propertyChange")]
    public function get mes() : Number
    {
        return _internal_mes;
    }

    [Bindable(event="propertyChange")]
    public function get dataCadastro() : Date
    {
        return _internal_dataCadastro;
    }

    [Bindable(event="propertyChange")]
    public function get dataFimSolicitacao() : Date
    {
        return _internal_dataFimSolicitacao;
    }

    [Bindable(event="propertyChange")]
    public function get dataUltimaAlteracao() : Date
    {
        return _internal_dataUltimaAlteracao;
    }

    [Bindable(event="propertyChange")]
    public function get tipoEntidade() : String
    {
        return _internal_tipoEntidade;
    }

    [Bindable(event="propertyChange")]
    public function get palestrante() : valueObjects.PalestranteVO
    {
        return _internal_palestrante;
    }

    [Bindable(event="propertyChange")]
    public function get parcial() : Number
    {
        return _internal_parcial;
    }

    [Bindable(event="propertyChange")]
    public function get acao() : String
    {
        return _internal_acao;
    }

    [Bindable(event="propertyChange")]
    public function get empresa() : valueObjects.EmpresaVO
    {
        return _internal_empresa;
    }

    [Bindable(event="propertyChange")]
    public function get periodoInicial() : Date
    {
        return _internal_periodoInicial;
    }

    [Bindable(event="propertyChange")]
    public function get responsavel() : valueObjects.ClienteVO
    {
        return _internal_responsavel;
    }

    [Bindable(event="propertyChange")]
    public function get indicePagina() : int
    {
        return _internal_indicePagina;
    }

    [Bindable(event="propertyChange")]
    public function get areaTema() : valueObjects.AreaTemaVO
    {
        return _internal_areaTema;
    }

    [Bindable(event="propertyChange")]
    public function get rotulosPublicacao() : ArrayCollection
    {
        return _internal_rotulosPublicacao;
    }

    [Bindable(event="propertyChange")]
    public function get selecionado() : Boolean
    {
        return _internal_selecionado;
    }

    public function clearAssociations() : void
    {
    }

    /**
     * data/source property setters
     */

    public function set total(value:Number) : void
    {
        var oldValue:Number = _internal_total;
        if (oldValue !== value)
        {
            _internal_total = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "total", oldValue, _internal_total));
        }
    }

    public function set dataEnvioProposta(value:Date) : void
    {
        var oldValue:Date = _internal_dataEnvioProposta;
        if (oldValue !== value)
        {
            _internal_dataEnvioProposta = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dataEnvioProposta", oldValue, _internal_dataEnvioProposta));
        }
    }

    public function set cor(value:String) : void
    {
        var oldValue:String = _internal_cor;
        if (oldValue !== value)
        {
            _internal_cor = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "cor", oldValue, _internal_cor));
        }
    }

    public function set dataSolicitacao(value:Date) : void
    {
        var oldValue:Date = _internal_dataSolicitacao;
        if (oldValue !== value)
        {
            _internal_dataSolicitacao = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dataSolicitacao", oldValue, _internal_dataSolicitacao));
        }
    }

    public function set descricao(value:String) : void
    {
        var oldValue:String = _internal_descricao;
        if (oldValue !== value)
        {
            _internal_descricao = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "descricao", oldValue, _internal_descricao));
        }
    }

    public function set codigo(value:Number) : void
    {
        var oldValue:Number = _internal_codigo;
        if (oldValue !== value)
        {
            _internal_codigo = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "codigo", oldValue, _internal_codigo));
        }
    }

    public function set quantidade(value:Number) : void
    {
        var oldValue:Number = _internal_quantidade;
        if (oldValue !== value)
        {
            _internal_quantidade = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "quantidade", oldValue, _internal_quantidade));
        }
    }

    public function set periodoFinal(value:Date) : void
    {
        var oldValue:Date = _internal_periodoFinal;
        if (oldValue !== value)
        {
            _internal_periodoFinal = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "periodoFinal", oldValue, _internal_periodoFinal));
        }
    }

    public function set ano(value:Number) : void
    {
        var oldValue:Number = _internal_ano;
        if (oldValue !== value)
        {
            _internal_ano = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "ano", oldValue, _internal_ano));
        }
    }

    public function set eventosPublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_eventosPublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_eventosPublicacao = value;
            }
            else if (value is Array)
            {
                _internal_eventosPublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_eventosPublicacao = null;
            }
            else
            {
                throw new Error("value of eventosPublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "eventosPublicacao", oldValue, _internal_eventosPublicacao));
        }
    }

    public function set prazoFimRetorno(value:Date) : void
    {
        var oldValue:Date = _internal_prazoFimRetorno;
        if (oldValue !== value)
        {
            _internal_prazoFimRetorno = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "prazoFimRetorno", oldValue, _internal_prazoFimRetorno));
        }
    }

    public function set areasAtuacaoPublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_areasAtuacaoPublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_areasAtuacaoPublicacao = value;
            }
            else if (value is Array)
            {
                _internal_areasAtuacaoPublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_areasAtuacaoPublicacao = null;
            }
            else
            {
                throw new Error("value of areasAtuacaoPublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "areasAtuacaoPublicacao", oldValue, _internal_areasAtuacaoPublicacao));
        }
    }

    public function set ramosAtividadePublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_ramosAtividadePublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_ramosAtividadePublicacao = value;
            }
            else if (value is Array)
            {
                _internal_ramosAtividadePublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_ramosAtividadePublicacao = null;
            }
            else
            {
                throw new Error("value of ramosAtividadePublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "ramosAtividadePublicacao", oldValue, _internal_ramosAtividadePublicacao));
        }
    }

    public function set valorParcial(value:Number) : void
    {
        var oldValue:Number = _internal_valorParcial;
        if (isNaN(_internal_valorParcial) == true || Math.abs(oldValue - value) > epsilon)
        {
            _internal_valorParcial = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "valorParcial", oldValue, _internal_valorParcial));
        }
    }

    public function set status(value:valueObjects.StatusVO) : void
    {
        var oldValue:valueObjects.StatusVO = _internal_status;
        if (oldValue !== value)
        {
            _internal_status = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "status", oldValue, _internal_status));
        }
    }

    public function set departamentosPublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_departamentosPublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_departamentosPublicacao = value;
            }
            else if (value is Array)
            {
                _internal_departamentosPublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_departamentosPublicacao = null;
            }
            else
            {
                throw new Error("value of departamentosPublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "departamentosPublicacao", oldValue, _internal_departamentosPublicacao));
        }
    }

    public function set cargosPublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_cargosPublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_cargosPublicacao = value;
            }
            else if (value is Array)
            {
                _internal_cargosPublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_cargosPublicacao = null;
            }
            else
            {
                throw new Error("value of cargosPublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "cargosPublicacao", oldValue, _internal_cargosPublicacao));
        }
    }

    public function set dia(value:Number) : void
    {
        var oldValue:Number = _internal_dia;
        if (oldValue !== value)
        {
            _internal_dia = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dia", oldValue, _internal_dia));
        }
    }

    public function set dataInicioSolicitacao(value:Date) : void
    {
        var oldValue:Date = _internal_dataInicioSolicitacao;
        if (oldValue !== value)
        {
            _internal_dataInicioSolicitacao = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dataInicioSolicitacao", oldValue, _internal_dataInicioSolicitacao));
        }
    }

    public function set telefoneContato(value:String) : void
    {
        var oldValue:String = _internal_telefoneContato;
        if (oldValue !== value)
        {
            _internal_telefoneContato = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "telefoneContato", oldValue, _internal_telefoneContato));
        }
    }

    public function set rotulosClientePublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_rotulosClientePublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_rotulosClientePublicacao = value;
            }
            else if (value is Array)
            {
                _internal_rotulosClientePublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_rotulosClientePublicacao = null;
            }
            else
            {
                throw new Error("value of rotulosClientePublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "rotulosClientePublicacao", oldValue, _internal_rotulosClientePublicacao));
        }
    }

    public function set minimo(value:Number) : void
    {
        var oldValue:Number = _internal_minimo;
        if (oldValue !== value)
        {
            _internal_minimo = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "minimo", oldValue, _internal_minimo));
        }
    }

    public function set responsaveis(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_responsaveis;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_responsaveis = value;
            }
            else if (value is Array)
            {
                _internal_responsaveis = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_responsaveis = null;
            }
            else
            {
                throw new Error("value of responsaveis must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "responsaveis", oldValue, _internal_responsaveis));
        }
    }

    public function set publicacoes(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_publicacoes;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_publicacoes = value;
            }
            else if (value is Array)
            {
                _internal_publicacoes = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_publicacoes = null;
            }
            else
            {
                throw new Error("value of publicacoes must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "publicacoes", oldValue, _internal_publicacoes));
        }
    }

    public function set usuarioUltimaAlteracao(value:valueObjects.UsuarioVO) : void
    {
        var oldValue:valueObjects.UsuarioVO = _internal_usuarioUltimaAlteracao;
        if (oldValue !== value)
        {
            _internal_usuarioUltimaAlteracao = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "usuarioUltimaAlteracao", oldValue, _internal_usuarioUltimaAlteracao));
        }
    }

    public function set fonteSolicitacaoVO(value:valueObjects.FonteSolicitacaoVO) : void
    {
        var oldValue:valueObjects.FonteSolicitacaoVO = _internal_fonteSolicitacaoVO;
        if (oldValue !== value)
        {
            _internal_fonteSolicitacaoVO = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "fonteSolicitacaoVO", oldValue, _internal_fonteSolicitacaoVO));
        }
    }

    public function set valorTotal(value:Number) : void
    {
        var oldValue:Number = _internal_valorTotal;
        if (isNaN(_internal_valorTotal) == true || Math.abs(oldValue - value) > epsilon)
        {
            _internal_valorTotal = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "valorTotal", oldValue, _internal_valorTotal));
        }
    }

    public function set numRegPaginas(value:int) : void
    {
        var oldValue:int = _internal_numRegPaginas;
        if (oldValue !== value)
        {
            _internal_numRegPaginas = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "numRegPaginas", oldValue, _internal_numRegPaginas));
        }
    }

    public function set historico(value:String) : void
    {
        var oldValue:String = _internal_historico;
        if (oldValue !== value)
        {
            _internal_historico = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "historico", oldValue, _internal_historico));
        }
    }

    public function set usuarioCadastro(value:valueObjects.UsuarioVO) : void
    {
        var oldValue:valueObjects.UsuarioVO = _internal_usuarioCadastro;
        if (oldValue !== value)
        {
            _internal_usuarioCadastro = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "usuarioCadastro", oldValue, _internal_usuarioCadastro));
        }
    }

    public function set dataFimEnvioProposta(value:Date) : void
    {
        var oldValue:Date = _internal_dataFimEnvioProposta;
        if (oldValue !== value)
        {
            _internal_dataFimEnvioProposta = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dataFimEnvioProposta", oldValue, _internal_dataFimEnvioProposta));
        }
    }

    public function set prazoRetorno(value:Date) : void
    {
        var oldValue:Date = _internal_prazoRetorno;
        if (oldValue !== value)
        {
            _internal_prazoRetorno = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "prazoRetorno", oldValue, _internal_prazoRetorno));
        }
    }

    public function set cidadesPublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_cidadesPublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_cidadesPublicacao = value;
            }
            else if (value is Array)
            {
                _internal_cidadesPublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_cidadesPublicacao = null;
            }
            else
            {
                throw new Error("value of cidadesPublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "cidadesPublicacao", oldValue, _internal_cidadesPublicacao));
        }
    }

    public function set emailContato(value:String) : void
    {
        var oldValue:String = _internal_emailContato;
        if (oldValue !== value)
        {
            _internal_emailContato = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "emailContato", oldValue, _internal_emailContato));
        }
    }

    public function set percentual(value:Number) : void
    {
        var oldValue:Number = _internal_percentual;
        if (isNaN(_internal_percentual) == true || Math.abs(oldValue - value) > epsilon)
        {
            _internal_percentual = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "percentual", oldValue, _internal_percentual));
        }
    }

    public function set valorProposta(value:Number) : void
    {
        var oldValue:Number = _internal_valorProposta;
        if (isNaN(_internal_valorProposta) == true || Math.abs(oldValue - value) > epsilon)
        {
            _internal_valorProposta = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "valorProposta", oldValue, _internal_valorProposta));
        }
    }

    public function set responsavelContato(value:String) : void
    {
        var oldValue:String = _internal_responsavelContato;
        if (oldValue !== value)
        {
            _internal_responsavelContato = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "responsavelContato", oldValue, _internal_responsavelContato));
        }
    }

    public function set empresasPublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_empresasPublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_empresasPublicacao = value;
            }
            else if (value is Array)
            {
                _internal_empresasPublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_empresasPublicacao = null;
            }
            else
            {
                throw new Error("value of empresasPublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "empresasPublicacao", oldValue, _internal_empresasPublicacao));
        }
    }

    public function set prazoInicioRetorno(value:Date) : void
    {
        var oldValue:Date = _internal_prazoInicioRetorno;
        if (oldValue !== value)
        {
            _internal_prazoInicioRetorno = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "prazoInicioRetorno", oldValue, _internal_prazoInicioRetorno));
        }
    }

    public function set fonteSolicitacao(value:String) : void
    {
        var oldValue:String = _internal_fonteSolicitacao;
        if (oldValue !== value)
        {
            _internal_fonteSolicitacao = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "fonteSolicitacao", oldValue, _internal_fonteSolicitacao));
        }
    }

    public function set totalRegistros(value:int) : void
    {
        var oldValue:int = _internal_totalRegistros;
        if (oldValue !== value)
        {
            _internal_totalRegistros = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "totalRegistros", oldValue, _internal_totalRegistros));
        }
    }

    public function set estadosPublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_estadosPublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_estadosPublicacao = value;
            }
            else if (value is Array)
            {
                _internal_estadosPublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_estadosPublicacao = null;
            }
            else
            {
                throw new Error("value of estadosPublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "estadosPublicacao", oldValue, _internal_estadosPublicacao));
        }
    }

    public function set dataInicioEnvioProposta(value:Date) : void
    {
        var oldValue:Date = _internal_dataInicioEnvioProposta;
        if (oldValue !== value)
        {
            _internal_dataInicioEnvioProposta = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dataInicioEnvioProposta", oldValue, _internal_dataInicioEnvioProposta));
        }
    }

    public function set maximo(value:Number) : void
    {
        var oldValue:Number = _internal_maximo;
        if (oldValue !== value)
        {
            _internal_maximo = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "maximo", oldValue, _internal_maximo));
        }
    }

    public function set mes(value:Number) : void
    {
        var oldValue:Number = _internal_mes;
        if (oldValue !== value)
        {
            _internal_mes = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "mes", oldValue, _internal_mes));
        }
    }

    public function set dataCadastro(value:Date) : void
    {
        var oldValue:Date = _internal_dataCadastro;
        if (oldValue !== value)
        {
            _internal_dataCadastro = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dataCadastro", oldValue, _internal_dataCadastro));
        }
    }

    public function set dataFimSolicitacao(value:Date) : void
    {
        var oldValue:Date = _internal_dataFimSolicitacao;
        if (oldValue !== value)
        {
            _internal_dataFimSolicitacao = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dataFimSolicitacao", oldValue, _internal_dataFimSolicitacao));
        }
    }

    public function set dataUltimaAlteracao(value:Date) : void
    {
        var oldValue:Date = _internal_dataUltimaAlteracao;
        if (oldValue !== value)
        {
            _internal_dataUltimaAlteracao = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "dataUltimaAlteracao", oldValue, _internal_dataUltimaAlteracao));
        }
    }

    public function set tipoEntidade(value:String) : void
    {
        var oldValue:String = _internal_tipoEntidade;
        if (oldValue !== value)
        {
            _internal_tipoEntidade = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "tipoEntidade", oldValue, _internal_tipoEntidade));
        }
    }

    public function set palestrante(value:valueObjects.PalestranteVO) : void
    {
        var oldValue:valueObjects.PalestranteVO = _internal_palestrante;
        if (oldValue !== value)
        {
            _internal_palestrante = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "palestrante", oldValue, _internal_palestrante));
        }
    }

    public function set parcial(value:Number) : void
    {
        var oldValue:Number = _internal_parcial;
        if (oldValue !== value)
        {
            _internal_parcial = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "parcial", oldValue, _internal_parcial));
        }
    }

    public function set acao(value:String) : void
    {
        var oldValue:String = _internal_acao;
        if (oldValue !== value)
        {
            _internal_acao = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "acao", oldValue, _internal_acao));
        }
    }

    public function set empresa(value:valueObjects.EmpresaVO) : void
    {
        var oldValue:valueObjects.EmpresaVO = _internal_empresa;
        if (oldValue !== value)
        {
            _internal_empresa = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "empresa", oldValue, _internal_empresa));
        }
    }

    public function set periodoInicial(value:Date) : void
    {
        var oldValue:Date = _internal_periodoInicial;
        if (oldValue !== value)
        {
            _internal_periodoInicial = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "periodoInicial", oldValue, _internal_periodoInicial));
        }
    }

    public function set responsavel(value:valueObjects.ClienteVO) : void
    {
        var oldValue:valueObjects.ClienteVO = _internal_responsavel;
        if (oldValue !== value)
        {
            _internal_responsavel = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "responsavel", oldValue, _internal_responsavel));
        }
    }

    public function set indicePagina(value:int) : void
    {
        var oldValue:int = _internal_indicePagina;
        if (oldValue !== value)
        {
            _internal_indicePagina = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "indicePagina", oldValue, _internal_indicePagina));
        }
    }

    public function set areaTema(value:valueObjects.AreaTemaVO) : void
    {
        var oldValue:valueObjects.AreaTemaVO = _internal_areaTema;
        if (oldValue !== value)
        {
            _internal_areaTema = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "areaTema", oldValue, _internal_areaTema));
        }
    }

    public function set rotulosPublicacao(value:*) : void
    {
        var oldValue:ArrayCollection = _internal_rotulosPublicacao;
        if (oldValue !== value)
        {
            if (value is ArrayCollection)
            {
                _internal_rotulosPublicacao = value;
            }
            else if (value is Array)
            {
                _internal_rotulosPublicacao = new ArrayCollection(value);
            }
            else if (value == null)
            {
                _internal_rotulosPublicacao = null;
            }
            else
            {
                throw new Error("value of rotulosPublicacao must be a collection");
            }
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "rotulosPublicacao", oldValue, _internal_rotulosPublicacao));
        }
    }

    public function set selecionado(value:Boolean) : void
    {
        var oldValue:Boolean = _internal_selecionado;
        if (oldValue !== value)
        {
            _internal_selecionado = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "selecionado", oldValue, _internal_selecionado));
        }
    }

    /**
     * Data/source property setter listeners
     *
     * Each data property whose value affects other properties or the validity of the entity
     * needs to invalidate all previously calculated artifacts. These include:
     *  - any derived properties or constraints that reference the given data property.
     *  - any availability guards (variant expressions) that reference the given data property.
     *  - any style validations, message tokens or guards that reference the given data property.
     *  - the validity of the property (and the containing entity) if the given data property has a length restriction.
     *  - the validity of the property (and the containing entity) if the given data property is required.
     */


    /**
     * valid related derived properties
     */
    model_internal var _isValid : Boolean;
    model_internal var _invalidConstraints:Array = new Array();
    model_internal var _validationFailureMessages:Array = new Array();

    /**
     * derived property calculators
     */

    /**
     * isValid calculator
     */
    model_internal function calculateIsValid():Boolean
    {
        var violatedConsts:Array = new Array();
        var validationFailureMessages:Array = new Array();

        var propertyValidity:Boolean = true;

        model_internal::_cacheInitialized_isValid = true;
        model_internal::invalidConstraints_der = violatedConsts;
        model_internal::validationFailureMessages_der = validationFailureMessages;
        return violatedConsts.length == 0 && propertyValidity;
    }

    /**
     * derived property setters
     */

    model_internal function set isValid_der(value:Boolean) : void
    {
        var oldValue:Boolean = model_internal::_isValid;
        if (oldValue !== value)
        {
            model_internal::_isValid = value;
            _model.model_internal::fireChangeEvent("isValid", oldValue, model_internal::_isValid);
        }
    }

    /**
     * derived property getters
     */

    [Transient]
    [Bindable(event="propertyChange")]
    public function get _model() : _PropostaIncompanyVOEntityMetadata
    {
        return model_internal::_dminternal_model;
    }

    public function set _model(value : _PropostaIncompanyVOEntityMetadata) : void
    {
        var oldValue : _PropostaIncompanyVOEntityMetadata = model_internal::_dminternal_model;
        if (oldValue !== value)
        {
            model_internal::_dminternal_model = value;
            this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, "_model", oldValue, model_internal::_dminternal_model));
        }
    }

    /**
     * methods
     */


    /**
     *  services
     */
    private var _managingService:com.adobe.fiber.services.IFiberManagingService;

    public function set managingService(managingService:com.adobe.fiber.services.IFiberManagingService):void
    {
        _managingService = managingService;
    }

    model_internal function set invalidConstraints_der(value:Array) : void
    {
        var oldValue:Array = model_internal::_invalidConstraints;
        // avoid firing the event when old and new value are different empty arrays
        if (oldValue !== value && (oldValue.length > 0 || value.length > 0))
        {
            model_internal::_invalidConstraints = value;
            _model.model_internal::fireChangeEvent("invalidConstraints", oldValue, model_internal::_invalidConstraints);
        }
    }

    model_internal function set validationFailureMessages_der(value:Array) : void
    {
        var oldValue:Array = model_internal::_validationFailureMessages;
        // avoid firing the event when old and new value are different empty arrays
        if (oldValue !== value && (oldValue.length > 0 || value.length > 0))
        {
            model_internal::_validationFailureMessages = value;
            _model.model_internal::fireChangeEvent("validationFailureMessages", oldValue, model_internal::_validationFailureMessages);
        }
    }


}

}
